home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Frameworks / Grant's CGI Framework 1.0b14 / Read Me < prev   
Text File  |  1996-04-12  |  11KB  |  179 lines

  1. Grant's CGI Framework
  2. (Common Grant Interface :-)
  3. Version 1.0 beta 14
  4.  
  5. by Grant Neufeld
  6.  
  7.  
  8. Grant's CGI Framework is a framework for writing 68K & PowerPC Macintosh CGI applications in C. The user of the framework only needs to modify one function (located in its own file) to produce a custom CGI - all the other details can be left to the framework. However, there are numerous options for customization available for those who need them.
  9.  
  10. Macintosh programming experience is not required (although it helps) - but at least a basic knowledge of the ANSI C language is required.
  11.  
  12. Features:
  13.  * 68K and PowerPC native support
  14.  * Multi-Threading (thread support requires Apple's Thread Manager or System 7.5)
  15.  * Automatic html form parsing with easy function access to individual fields
  16.  * Asynchronus CGI (ACGI)
  17.  * ListSTAR trigger and action events
  18.  * AppleScriptable for testing without a server or MacTCP
  19.  * Optional compile as faceless background-only application
  20.  * Numerous configuration options for optimizing to your specific needs
  21.  * Optional self-quitting after specified idle time
  22.  * Significant performance increase over scripts such as those in AppleScript and Perl
  23.  * Metrowerks and Symantec project files
  24.  * If you use it to write free applications, it's free to use.
  25.  
  26.  
  27. Getting Started
  28.  
  29. The 'Documentation' folder contains some instructions on how to use the framework, the version history (some items are only documented in the version history, so read it!) and the 'License and Limited Warranty'. If you read through the entire documentation (shouldn't take very long because there's not all that much, yet), look at the source code, and still don't understand something, ask about it on the mailing list or by email directly to Grant. (addresses later in this doc)
  30.  
  31. Notes:
  32.  
  33. The PowerPC compatibility has been tested by others, but I haven't seen it myself (I'm on a 680x0 system). If you want extensive and robust testing please buy me a PowerMac! <grin> No, really, please feel welcome to buy me any model of PowerMac - or even a hand-me-down! (I'd accept lobbying of Apple to give me a nice discount as an alternative :-)
  34.  
  35. Project files for earlier versions of Codewarrior can be made available. Please send email to grant@acm.org requesting the particular version you want.
  36.  
  37. I've only added basic support for ListSTAR trigger and action events in the current version. For those who don't want both CGI and ListSTAR events in their application, it is easy to remove the ListSTAR or CGI support from the project (I'll eventually be distributing them as separate projects, but it's easier for me to do them as one, for now) See the section on "Building a ListSTAR tool" at the end of the documentation for instructions on using or not using ListSTAR and CGI events.
  38.  
  39. For specifics on what you have to pay for using this software and code (if you're not using it to create freeware), please refer to the "Royalties" file in the "Documentation" folder.
  40.  
  41. This is beta software but it seems to generally work without problems! Don't bet your life on it though... 
  42.  
  43.  
  44. Further Information About This Framework
  45.  
  46. World Wide Web home page:
  47.      http://arpp.carleton.ca/grant/mac/grantscgi/
  48.  
  49. Grant's CGI Discussion, Announcements, and the Source Updates mail lists:
  50. I've set up a mailing list for discussing this framework. It is intended to be a forum for information, ideas, questions and announcements about about writing CGIs (and the CGIs that have been written) using Grant's CGI Framework. 
  51. Send a message with the command "subscribe" (without quotes) as the subject to: 
  52.   grantcgi@arpp.carleton.ca
  53.  
  54. There is a list for those who only want the announcements - no discussion. It is mutually-exclusive with the grantcgi list, meaning that you can only subscribe to one of them since all the postings to grantcgi-announce are also made to grantcgi.
  55. Send a message with the command "subscribe" (without quotes) as the subject to: 
  56.   grantcgi-announce@arpp.carleton.ca
  57.  
  58. You can also subscribe to a mailing list which will send you periodic updates to the framework as they are released (both interm and regular releases). All updates are sent as Stuffit attachments (HQX MIME format). The archives are not sent to either of the two other lists.
  59. Send a message with the command "subscribe" (without quotes) as the subject to: 
  60.   grantcgi-source@arpp.carleton.ca
  61.  
  62. If you want more details on any of the lists, just send the command "help" instead of "subscribe".
  63.  
  64. Download:
  65.   http://arpp.carleton.ca/grant/mac/grantscgi.sit.hqx
  66.  
  67. On the Info-Mac archives in "/info-mac/dev/lib/".
  68. A list of mirrors of the Info-Mac site is at: http://arpp.carleton.ca/doc/mac/tool/info-mac-mirrors.html
  69.  
  70. Apprentice CD "The Definitive Collection of Source Code and Utilities for Mac Programmers" <http://www.celestin.com/apprentice/> includes a copy of version On Apprentice 3: "Apprentice:Source Code:C:Frameworks:Grant's CGI Framework:"
  71. Apprentice 4: "Apprentice:Source Code:C:Frameworks:Grant's CGI Framework 1.0b12:"
  72.  
  73. On the "CDWeb" Vol. 11 CD included with the Japanese "Internet User" Magazine, 1995 No. 12. in "CDWeb Vol. 11:Starter Kit:WWW:Server:CGI:grants-cgi-framework-10b10:"
  74.  
  75. Interm releases may be available at:
  76.   http://arpp.carleton.ca/grant/mac/grantscgi/interm.html
  77.  
  78.  
  79. Possible Future Enhancements - To Do List
  80.  
  81. My list seems to grow faster than I get things on it done... With this in mind, I'll encourage you once again to contribute your feature requests. Please take special note of the last section of this list and let me know if you can contribute to any of the items there. Help and suggestions are always welcome with all aspects of the framework.
  82.  
  83. These are the BIG areas I plan to work on over the next while:
  84.  * Send Partial
  85.  * WebSTAR CFM Plug-in support
  86.  
  87. These are the ongoing struggles:
  88.  * documentation
  89.  * Locating and fixing bugs
  90.  
  91. These are more areas that I hope to get around to sooner rather than later:
  92.  * Sample applications
  93.  * preferences interface and file
  94.  * Use resources for storing some of the variables (number of threads,
  95.    quit idle time,...)
  96.  * Status window: current threads, total events handled, total errors, etc.
  97.  * make alerts modeless so they don't freeze up the system
  98.  * Low-priority status updating and deferred tasks sub-threads.
  99.  * Determine server name for http headers
  100.  * Determine CGI Type (IE. ACGI, CGI, Action, Preprocessor, Postprocessor)
  101.  * Default page(s) returning mechanism
  102.  * Determine server root directory
  103.  * function for MacHTTP/WebSTAR style log entry
  104.  * DNS functions
  105.  
  106. These are items that can't fit on my plate right now, but which I do hope
  107. to get around to sometime this century.
  108.  * Functions for sending ListSTAR and WebSTAR control events
  109.  * Support WebSTAR 'Reporting' events
  110.  * Allow event passing for CGI daisy-chaining
  111.  
  112. These are things I could use some help with:
  113.  * Write some useful test scripts
  114.  * MPW support
  115.  * MacAPP, PowerPlant and THINK Class Library C++ CGI class integration
  116.  * Pascal version (someone is actually helping me with this! More help is
  117.    always welcome, though)
  118.  * Support unix cgi variables for easier porting from unix
  119.  * A unix code shell for easier porting to unix
  120.  * AppleGuide, QuickView, THINK Reference, ObiWan, etc. online reference(s)
  121.  * Profile and optimize the code
  122.  * HTTP file upload
  123.  
  124.  
  125. Acknowledgements
  126.  
  127. The following are some of the people (alphabetically listed) who've contributed to and affected this framework (But don't blame them for the outcome, please. It's all my fault.)
  128.  
  129. Scott T Boyd and a bunch of others who were at MacHack'95 affected my thinking about this code.
  130.  
  131. Gregory S. Combs identified the now corrected PowerPC compiler errors and supplied the initial PPC format project file for CodeWarrior and some code snippets. He's also made various other useful comments & contributions.
  132.  
  133. Rick Hartmann of Symantec Macintosh Dev Tools Support helped me figure out my problems getting the framework to compile with Symantec's tools.
  134.  
  135. Steve Johnson was another person who identified the now corrected PowerPC compiler errors.
  136.  
  137. Frank Leahy has been giving a number of good suggestions and has also identified some bugs.
  138.  
  139. Peter N Lewis and Quinn developed the Internet Config system.
  140.  
  141. John Norstad's MailTools Gateway was another framework I looked at, but decided the code was too obscure for my very particular code style tastes. (Not that my code is necessarily any less obscure - just differently so ;-)
  142.  
  143. John O'Fallon wrote the "Responder" source which inspired this framework. Although I did the whole thing over from scratch to suit my own purposes. See his site: http://www.maxum.com/maxum/
  144.  
  145. Chuck Shotton, author of MacHTTP™ and WebSTAR™, answered some of my questions along the way, and kindly granted permission to include his cgi_params page with the framework.
  146.  
  147. Stefan Strand of "Teknik i Media AB" identified my off-by-one error in the 'CGIDecodeSpecialChars' function (now fixed).
  148.  
  149. Scott Taylor pointed out the missing '/' in my TITLE tags in the sample html, as well as a bug in 'startupTrapAvailable'.
  150.  
  151. Wayne K. Walrath identified (and helped solve) my previously bad design of AppleEvent threading.
  152.  
  153. The WebSTAR™ documentation provided the details of the WWWΩsdoc AppleEvent.
  154.  
  155. And, with much pride, I can now thank the registered users who are financially supporting my work. It is much appreciated!
  156.  
  157.  
  158. About the Author
  159.  
  160. I, Grant Neufeld, as of this writing, am an applications programmer for InfoDesign Corporation. My current project there is the Macintosh part of a workflow management system (WorkSMART™). The company also does some good SGML training and systems integration. They can be contacted at info@idc.com. They have absolutely nothing to do with this project and are in no way associated with it or responsible for any aspect of it (except that they pay my salary, which pays for food, which keeps me alive, which is a necessary factor in my ability to produce this stuff.)
  161.  
  162. See my vanity page for more insight into who I am and what I do (and how vain I am):
  163.   http://arpp.carleton.ca/grant/
  164.  
  165. Contacting me:
  166.   gneufeld@ccs.carleton.ca  (At least until May 1996)
  167.   grant@acm.org
  168.   grant@kagi.com
  169.  
  170. ____________________
  171. StarNine, ListSTAR, and WebSTAR are trademarks of StarNine Technologies, Inc.
  172. AppleScript, Macintosh, Mac, and MacTCP are trademarks or registered trademarks of Apple Computer, Inc.
  173. UNIX is a registered trademark of Novell, Inc.
  174. CodeWarrior is a trademark of Metrowerks Inc.
  175. Symantec is a trademark of Symantec Corporation.
  176. WorkSMART is a trademark of InfoDesign Corporation.
  177. Grant's CGI Framework is, for those who even bother to read the small print, a GrantMark and a TradeMark of Grant Neufeld.
  178. Copyright ©1995,1996 by Grant Neufeld
  179.